package com.eiisan.core.util.api;

import javax.servlet.http.HttpServletResponse;

/**
 * @Description: 公共状态枚举
 * @Author gragonfly
 * @Date 2019/6/22
 **/
public enum ResultCode implements IResultCode {
    /**
     * 操作成功,与预期相符
     */
    SUCCESS(HttpServletResponse.SC_OK, "操作成功"),
    /**
     * 操作失败,与预期不符
     */
    FAILURE(HttpServletResponse.SC_BAD_REQUEST, "操作失败"),
    /**
     * 请求参数错误(缺少参数，参数类型错误，参数校验未通过)
     */
    ERROR_PARAMETER(HttpServletResponse.SC_BAD_REQUEST, "请求参数错误"),
    /**
     * 404 没找到请求
     */
    NOT_FOUND(HttpServletResponse.SC_NOT_FOUND, "404 没找到请求"),
    /**
     * 未登录
     */
    NOT_LOGIN(HttpServletResponse.SC_UNAUTHORIZED, "此操作需要登陆系统"),
    /**
     * 已过期
     */
    EXPIRED(HttpServletResponse.SC_UNAUTHORIZED, "已过期"),
    /**
     * 未通过验证
     */
    NO_AUTH(HttpServletResponse.SC_UNAUTHORIZED, "未通过验证"),
    /**
     * 缺少操作权限
     */
    NO_ACCESS(HttpServletResponse.SC_UNAUTHORIZED, "无权限"),
    /**
     * 重复请求
     */
    REPEAT_REQUEST(HttpServletResponse.SC_FORBIDDEN, "重复请求"),
    /**
     * 服务器繁忙
     */
    BUSY_SERVER(HttpServletResponse.SC_SERVICE_UNAVAILABLE, "抱歉，系统繁忙，请稍后重试"),
    /**
     * 服务器异常
     */
    ERROR_SERVER(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "服务器异常");

    /**
     * 自定义状态码
     */
    int code;
    /**
     * 描述
     */
    String desc;

    @Override
    public int getCode() {
        return code;
    }

    @Override
    public String getDesc() {
        return desc;
    }

    ResultCode(int code, String desc) {
        this.code = code;
        this.desc = desc;
    }

}
